package model;

import java.io.Serializable;
import java.util.Date;

/**
 *
 * @author rosana
 */
public class Profissional extends Pessoa implements Serializable {
    
    private Pessoa Pessoa;
    private int numCRM;
    private String emailClinica;
    private int numCarteira;
    private Profissao profissao;
    private String dataAdmissao;    
    private Cargo Cargo;
    
     /**
     * construtor vazio
     */    
    
    public Profissional(){
        
    }
    
    public Profissional(String nome, String cpf, String rg, String dataNasc, String endereco, String telefone, String celular, String email) {
        super(nome, cpf, rg, dataNasc, endereco, telefone, celular, email);
    
    }

    public Profissional(Pessoa Pessoa, int numCRM, String emailClinica, int numCarteira, Profissao profissao, String dataAdmissao, String nome, String cpf, String rg, String dataNasc, String endereco, String telefone, String celular, String email,Cargo Cargo) {
        super(nome, cpf, rg, dataNasc, endereco, telefone, celular, email);
        this.Pessoa = Pessoa;
        this.numCRM = numCRM;
        this.emailClinica = emailClinica;
        this.numCarteira = numCarteira;
        this.profissao = profissao;
        this.dataAdmissao = dataAdmissao;
        this.Cargo = Cargo;
    }
    public Profissional(int numCRM, String emailClinica, int numCarteira, Profissao profissao, String dataAdmissao, String nome, String cpf, String rg, String dataNasc, String endereco, String telefone, String celular, String email,Cargo Cargo) {
        super(nome, cpf, rg, dataNasc, endereco, telefone, celular, email);
        this.numCRM = numCRM;
        this.emailClinica = emailClinica;
        this.numCarteira = numCarteira;
        this.profissao = profissao;
        this.dataAdmissao = dataAdmissao;
        this.Cargo = Cargo;
    }
  
    /**
     * @return the Pessoa
     */
    public Pessoa getPessoa() {
        return Pessoa;
    }

    /**
     * @param Pessoa the Pessoa to set
     */
    public void setPessoa(Pessoa Pessoa) {
        this.Pessoa = Pessoa;
    }
    
    /**
     * @return the Cargo
     */
    
     public Cargo getCargo() {
        return Cargo;
    }

    /**
     * @param Cargo the Pessoa to set
     */
    public void setCargo(Cargo Cargo) {
        this.Cargo = Cargo;
    }

    /**
     * @return the numCRM
     */
    public int getNumCRM() {
        return numCRM;
    }

    /**
     * @param numCRM the numCRM to set
     */
    public void setNumCRM(int numCRM) {
        this.numCRM = numCRM;
    }

    /**
     * @return the emailClinica
     */
    public String getEmailClinica() {
        return emailClinica;
    }

    /**
     * @param emailClinica the emailClinica to set
     */
    public void setEmailClinica(String emailClinica) {
        this.emailClinica = emailClinica;
    }

    /**
     * @return the numCarteira
     */
    public int getNumCarteira() {
        return numCarteira;
    }

    /**
     * @param numCarteira the numCarteira to set
     */
    public void setNumCarteira(int numCarteira) {
        this.numCarteira = numCarteira;
    }

    /**
     * @return the profissao
     */
    public Profissao getProfissao() {
        return profissao;
    }

    /**
     * @param profissao the profissao to set
     */
    public void setProfissao(Profissao profissao) {
        this.profissao = profissao;
    }

    /**
     * @return the dataAdmissao
     */
    public String getDataAdmissao() {
        return dataAdmissao;
    }

    /**
     * @param dataAdmissao the dataAdmissao to set
     */
    public void setDataAdmissao(String dataAdmissao) {
        this.dataAdmissao = dataAdmissao;
    }

    
    @Override
    public String toString() {
        return "Profissional{" + "numCRM=" + getNumCRM() + ", emailClinica=" + getEmailClinica() + ", numCarteira=" + getNumCarteira() + ", profissao=" + getProfissao() + ", dataAdmissao=" + getDataAdmissao() + '}';
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 89 * hash + this.getNumCarteira();
        hash = 89 * hash + (this.getDataAdmissao() != null ? this.getDataAdmissao().hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Profissional other = (Profissional) obj;
        if (this.getNumCarteira() != other.getNumCarteira()) {
            return false;
        }
        if (this.getDataAdmissao() != other.getDataAdmissao() && (this.getDataAdmissao() == null || !this.dataAdmissao.equals(other.dataAdmissao))) {
            return false;
        }
        return true;
    }        
   
    
}
